CloudWatchの複合アラームを仕組みを確認しつつ使ってみた
こんにちは、CX事業本部 IoT事業部の若槻です。
Amazon CloudWatchの複合アラームを仕組みを確認しつつ使ってみました。
複合アラームとは
Amazon CloudWatchの複合アラーム(composite alarm)とは、すでに作成されているアラーム(子アラーム)の状態を監視対象にできるアラームです。その監視対象のアラームは複数指定でき、様々なルール式を設定できます。
ルール式では各アラームの評価を関数を使用して行います。各関数はTRUE
またはFALSE
を返すステートメントとなります。
関数 | 評価方法 |
---|---|
ALARM("alarm") |
指定のアラームがALARM状態の場合にTRUE |
OK("alarm") |
指定のアラームがOK状態の場合にTRUE |
INSUFFICIENT_DATA("alarm") |
指定のアラームがINSUFFICIENT_DATA状態の場合にTRUE |
TRUE |
常にTRUE |
FALSE |
常にFALSE |
そして各ステートメントをAND
、OR
、NOT
および()
を使用して、最終的な評価を行うルール式を作成します。例えば下記のようなルール式が作成できます。
ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)
ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)
(ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh)
制限として、1つの複合アラームあたりに含められる子アラームは最大100個、要素は最大500個となります。
An AlarmRule expression can specify as many as 100 "child" alarms. The AlarmRule expression can have as many as 500 elements. Elements are child alarms, TRUE or FALSE statements, and parentheses. A pair of parentheses counts as one element.
AlarmRule 式には、最大 100 個の「子」アラームを指定できます。AlarmRule 式には、最大 500 個の要素を含めることができます。要素は、子アラーム、TRUE または FALSE ステートメント、および括弧です。括弧のペアは 1 つの要素としてカウントされます。
やってみた
今回の作成対象は以下の構成のうち複合アラームの部分です。子アラームはすでに作成されている前提とします。
複合アラームの作成
マネジメントコンソールのCloudWatchアラームの一覧で、複合アラームの子アラームとしたいアラームを選択して、[Create composite alarm]をクリックします。
[Conditions]欄で複合アラームの発生条件を指定します。今回はtestAlarm
とtestAlarm2
のいずれかでアラームが発生することを条件とします。
ALARM("testAlarm") OR ALARM("testAlarm2")
[Next]をクリックします。
通常のアラームと同じように通知の設定をします。[Next]をクリックします。
現時点では、通知方法はSNSトピックのみ設定可能となっています。
Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.
アラーム名を指定して[Next]をクリックします。
プレビューを確認したら、[Create composite alarm]をクリックしてアラームを作成します。
複合アラームが作成できました。通常のアラームと同じ一覧に追加されるようです。
アラームを発生させてみる
子アラームのうちの1つ(testAlarm)に対して手動でアラームを発生させます。
$ aws cloudwatch set-alarm-state \ --alarm-name testAlarm \ --state-value ALARM \ --state-reason "test"
するとtestAlarmでアラームが発生するのに従い、複合アラームでもアラームが発生しました。
通知アクションによるメールも届きました。
参考
以上